package unq.tpi.persistencia.alumnos.dao.hbm;

import java.util.LinkedList;
import java.util.List;

import org.hibernate.Query;
import unq.tpi.persistencia.alumnos.arq.runner.HibernateRunner;
import unq.tpi.persistencia.alumnos.dao.AlumnoDAO;
import unq.tpi.persistencia.alumnos.model.Alumno;
import unq.tpi.persistencia.alumnos.model.Materia;

public class AlumnoDAOHbm implements AlumnoDAO {

	public Alumno getPorLegajo(String legajo) {
		//throw new RuntimeException("Implement me :(");
		Query q=HibernateRunner.currentSession()
				.createQuery("FROM Alumno WHERE legajo = ?");
		q.setString(0,legajo);
		return (Alumno)q.uniqueResult();
		
	}

	public void save(Alumno alumno) {
		HibernateRunner.currentSession().save(alumno);
	}

	public List<Alumno> getInscriptosA(Materia materia) {
		//throw new RuntimeException("Implement me :(");
		if(materia==null){
			return new LinkedList<Alumno>();
		}
		
		Query q=HibernateRunner.currentSession()
				.createQuery("SELECT c.alumno FROM Cursada c WHERE c.materia = ?");
		q.setEntity(0,materia);
		return (List<Alumno>)q.list();
	}
}
